// 检查更新模块

const { Notification } = require('electron');
const { autoUpdater } = require('electron-updater');

const NotificationTitle = "更新提示";


function checkUpdate() {
    // 开始检查更新
    autoUpdater.checkForUpdates()
        .catch(err => {
            new Notification({
                title: NotificationTitle,
                body: "无法与更新服务器取得通讯"
            }).show();
        });

    // 监听错误事件
    autoUpdater.on('error', (err) => {
        console.error('更新错误:', err.message || '发生未知错误');
        new Notification({
            title: NotificationTitle,
            body: "更新错误: " + err.message
        }).show();
    });

    // 监听可用更新事件
    autoUpdater.on('update-available', (info) => {
        new Notification({
            title: NotificationTitle,
            body: "发现可以更新，正在下载！"
        }).show();

        // 静默下载更新
        autoUpdater.downloadUpdate()
            .then(() => {
                console.log('更新下载中...');
            })
            .catch(err => {
                new Notification({
                    title: NotificationTitle,
                    body: "更新下载失败: " + err.message
                }).show();
            });
    });

    // 监听更新下载完成事件
    autoUpdater.on('update-downloaded', () => {
        new Notification({
            title: NotificationTitle,
            body: "更新下载完成，正在安装..."
        }).show();
        // 静默安装更新
        autoUpdater.quitAndInstall();
    });

    // 监听没有可用更新事件（可选）
    autoUpdater.on('update-not-available', () => {
        console.log('已是最新版本');
    });
}

module.exports = { checkUpdate };